Trái tim là bộ phận quan trọng của con người đồng thời trái tim tượng trưng cho tình yêu đẹp của đôi trai gái. Các bạn trai đọc điện -
điện tử muốn trinh phục được chị em phụ nữ thì phải có gì tặng chị em
thì chị em mới cảm động được. Bỏ tiên ra mua món quà thì không hay lắm
nhưng chúng ta bỏ tiền ra để làm một cái gì đó tặng thì món quà đó thật
là ý nghĩa. Khi đó chúng ta vừa học được và lại có quà tặng bạn gái đồng
thời chiếm được tình cảm của bạn gái. Chính vì đó bài viết này sẽ hướng
dẫn mọi người làm mạch trái tim đơn giản dùng 8501. Mạch rất đơn giản
và chương trình cũng không khó.
I - Sơ lược về họ vi điều khiển 8501
Khi
nhắc đến vi điều khiển, không ai là không biết họ vi điều khiển của
8051 do ATMEL cung cấp và phát triển. Thông dụng nhất là các sản phẩm
của dòng 89Cxxx và 89sxxx. Ưu điểm lớn nhất của họ vi điều khiển 8051
là:
+Giá chip rẻ. Chỉ từ 20 nghìn là bạn có thể có trong tay chip 89C52
+Cấu tạo đơn giản với 35 câu lệnh ASM
+Với
89c52 có 8kb bộ nhớ dữ liệu, 128bye ram, 32 chân I/O, 3 timer, 8 ngẳt,
hoạt động ở điện áp 5V, đóng gói với kiểu chân dip40 chân và kiểu PLCC
+Tần số tối đa: 33Mhz
89c52 với 4 PORT có khả năng nhập,xuất. Gồm PORT0 (P0), PORT1 (P1), PORT2 (P2), PORT3 (P3)
Mỗi PORT gồm 8 PIN( hay chân) và có thể được đinh địa chỉ từng bit. ví dụ:
P1^0, P1^1... P1^8 tương tự với các PORT 0,2,3
Các PIN của PORT chỉ có 2 trạng thái là: mức cao(1) có giá trị xấp xỉ giá trị VCC. Mức thấp(0) có giá trị xấp xỉ 0V(GND) II - Tổng quan và tính toán cho LED phát quang 1) Hoạt động và phân cực cho LED
LED phát quang được phát sáng khi chúng ta cấp nguồn cho
nó thì nó sẽ phát sáng. Có rất nhiều LED phát quang với mầu sắc, kích
thước chủng loại khác nhau. Và được ứng dụng trong thắp sáng, trang
trí...
Bản chất của LED chính là một diode có khả năng phát sáng khi phân cực thuận.
Khi Led sáng thi điện áp rơi trên LED có giá trị nhỏ nhất là 0.7V và
lớn nhất gần 2V tùy từng loại LED. Tùy vào từng loại LED mà có giá trị
dòng qua LED khác nhau để LED sáng bình thường. Thông thường thì nguồn
cấp cho LED 3V thì chúng ta không cần điện trở hạn dòng nhưng đối với
nhiều mạch người ta không thể dùng thêm một nguồn nữa nên người ta dùng
nguồn cho LED chung với nguồn điều khiển (5V) và lắp thêm con điện trở nối tiếp cho LED. Mục đích là để hạn dòng cho LED không cho dòng qua LED lớn hơn giá trị định mức. Nếu mà quá dòng thì LED sẽ cháy. Tính toán điện trở đó như thế nào? 2) Cách tính toán điện trở hạn dòng cho LED
Nếu chúng ta sử dụng nguồn 3V thì không cần phải điện trở mà có thể lắp trực tiếp được nhưng nếu mà cho nguồn lớn hơn 3V thì cần phải có thêm một con điện trở hạn dòng cho LED
Chúng ta áp dụng lý thuyết mạch điện vào tính toán điện trở này như sau:
R = (Vcc - Uled)/Iled
với Uled là điện áp rơi trên LED phát quang. Nằm trong 0.7 ~ 2V tùy từng loại LED
Iled là dòng điện định mức qua LED.
Dựa vào công thức đó chúng ta sẽ tính được giá trị điện trở cho vào cho từng loại LED.
Lấy ví dụ : Mua LED có Uled = 1V, Iled = 10mA với điện áp nguồn là 5V. Áp dụng công thức trên ta sẽ tính được R = 400 ôm. 3) Điều khiển LED với 8501
LED phát quang chúng ta chỉ cần phân cực thuận
là nó sẽ sáng.Trong 8501 chỉ điều khiển được mức 1 (5V) và mức 0 (0V)
nên do đó LED khi mắc vào chân của 8501 sẽ được điều khiển tắt hoặc mở
tùy thuộc vào trạng thái của chân 8501 được điều khiển như thế nào? Có
hai cách mắc LED và chân 8501
+ Mắc ở chế độ xả dòng
Với mắc ở chế độ này thì LED sẽ sáng rất tối vì công suất của chân 8501 rất yếu. Không đủ cấp dòng cho
LED sáng với chế độ định mức. Nên phương pháp này sẽ làm LED sáng tối
nên không hiểu quả. Chân 8501 ở mức 1 thì LED sáng và mức 0 thì tắt
+ Mắc ở chế độ hút dòng
Mắc
kiểu này thì LED sáng hết công suất. Đây là phương pháp ghép trực tiếp
nhưng vi xử lý nó chỉ chịu được một giá trị dòng nhất định qua nó. Nếu
mà quá nhiều LED ghép nối thế này thì tất cả dòng sẽ qua vi xử lý gây ra
quá dòng trên vi xử lý gây nên cháy chíp và chíp nóng không hoạt động
được lâu. Phương pháp này chỉ mang tính lắp ít LED và điều khiển không
đồng thời. Giải pháp là gắn thêm một transitor đệm. Đối với mắc kiểu này
thì mức 1 thì LED tắt và mức 0 thì LED tắt.
Điều khiển LED đơn này
cũng rất là đơn giản. Nó dựa vào cách ghép nối với vi xử lý và đưa mức
cần thiết ra chân vi xử lý thì LED sẽ sáng và tắt theo ý muốn của chúng
ta. III - Mạch trái tim với 32 LED ghép nối với 8501 1) Mạch nguyên lý
Mỗi
PORT của 89C52 có độ dài 8 bit, do vậy không thể truy xuất lên từng
PORT một lúc được. Ta chỉ có thể làm lần lượt với từng Port của 89C52.
Nhưng với điều khiển LED, Thời gian thực hiên rất nhanh, và coi như thực
hiện gần như cùng một lúc. Sau đây mình sẽ điều khiển 32 LED được xếp
thành một hình trái tim.
Mạch nguyên lý trên là ghép trực tiếp không dùng đệm. Theo nguyên tắc vẫn chạy được nhưng không đảm bảo cho
con 8501 hoạt động tốt và không bị quá dòng. Nhưng với bài toán này
chúng ta có thể ghép trực tiếp với LED thường và điều khiển không đồng
thời. Mạch vẫn chạy ổn định. 2) Thuật toán điều khiển
Việc điều khiển 32 LED đơn này cũng không khó. Ta cứ cho
LED này bật rồi LED kia tắt theo hiệu ứng của chúng ta. Các thời điểm
được tính là rất nhanh. Việc chuyển từ thời điểm này sang thời điểm kia
được qua một thời gian trễ nếu cần thiết. Ta chỉ cần xuất mức 0 ra chân
8501 là LED sáng và mức 1 ra chân của 8501 là LED tắt. Dựa vào điểm này
chúng ta có thể điều khiển 32 LED theo ý thíc. Một ví dụ đơn giản là
chạy LED từ trên xuống
#include"reg52.h"
unsigned char ma[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(unsigned int tre)
{
unsigned int tg;
for(tg=0;tg
}
P0=P1=0xff;
for(i=0;i<8;i++)
{
P3=ma[i];
P2=ma[7-i];
delay(42000);
}
}
}
Đó là các ví dụ đơn giản nhất mà các bạn dễ dàng thực hiện. Từ đó các bạn phát triển thêm nhiều kiểu nháy LED phong phú hơn IV - Sản phẩm, Code&mô phỏng, PCB 1) Sản phẩm
Dưới đây là sản phẩm của mạch hình LED trái tim mà tôi làm được. Nhìn trông giao diện cũng khá đẹp. Tặng người iu thì quá tốt
Linh kiện được gắn theo kiểu SMD để tăng thêm tính thẩm mỹ của sản phẩm
2) Code và Mô phỏng, PCB
+ Chương trình được viết cho dòng vi xử lý 8501, môi trường biên dịch Kei C
+ Mô phỏng bằng phần mền Protues để minh họa thêm sản phẩm
+ Mạch in PCB bằng Protues để mọi người có thể làm luôn
Ngoài chương trình tham khảo này các bạn có thể phát triển thêm nhiều hiệu ứng đẹp để cho mạch đèn LED trái tim phong phú và đẹp hơn